package com.cnap.multiclouldmgmt.model.k8sMonitorModels;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;
/**
 * 监控或者算法需要的数据
 * @author dyq
 */
@ApiModel(value = "com.cnap.multiclouldmgmt.model.k8sMonitorModels.NodeAlgInfoModel",description = "算法所需要的节点的参数")
public class NodeAlgInfoModel extends K8sClusterAlgInfoModel {

    //节点名称
    @ApiModelProperty(value = "节点名称")
    private String nodeName;


    //cpu总量，核数，
    @ApiModelProperty(value = "cpu总量，核数，")
    private double cpuNum;

    //cpu总量，核数单位n，
    @ApiModelProperty(value = "cpu总量，核数单位n")
    private long cpuNumByN;

    //cpu使用量，核数，
    @ApiModelProperty(value = "cpu使用量，核数，")
    private double cpuUseNum;

    //cpu总量，核数单位n，
    @ApiModelProperty(value = "cpu使用量，核数单位n")
    private long cpuUseNumByN;

    //内存总量，单位mb，
    @ApiModelProperty(value = "内存总量，单位mb")
    private int memQuato;

    //内存使用量，单位mb，
    @ApiModelProperty(value = "内存使用量量，单位mb")
    private int memUse;

    //磁盘的总读写速率
    @ApiModelProperty(value = "磁盘的总读写速率，单位MB/s")
    private int diskThroughput;

    //该节点当前占用读写速率
    @ApiModelProperty(value = "该节点当前占用读写速率，单位MB/s")
    private int diskCurrentThroughput;

    //该节点磁盘秒均总读写次数，单位次/s
    @ApiModelProperty(value = "该节点磁盘秒均总读写次数，单位次/s")
    private int diskIpos;

    //该节点当前占用读写次数，单位次/s
    @ApiModelProperty(value = "该节点当前占用读写次数，单位次/s")
    private int diskCurrentIpos;

    //该节点网络总带宽，单位bps
    @ApiModelProperty(value = "该节点网络总带宽，单位bps")
    private int netBandwidth;

    //该节点当前占用带宽，单位bps
    @ApiModelProperty(value = "该节点当前占用带宽，单位bps")
    private int netCurrentBandwidth;

    //节点网络时延
    @ApiModelProperty(value = "节点网络时延")
    private int delay;

    //节点丢包率
    @ApiModelProperty(value = "节点丢包率")
    private double lossRate;

    //节点下某个负载的所有副本的情况
    @ApiModelProperty(value = "节点下某个负载的所有副本的情况")
    private List<PodAlgInfoModel> podAlgInfoModels;

    //空载情况
    @ApiModelProperty(value = "空载情况")
    private PodAlgInfoModel initPodAlgInfoModel;


    //podNum
    @ApiModelProperty(value = "podNum")
    private int podNum;

    /**
     * get
     *
     * @return NodeName
     */
    public String getNodeName() {
        return nodeName;
    }

    /**
     * set
     *
     * @param nodeName nodeName
     */
    public void setNodeName(String nodeName) {
        this.nodeName = nodeName;
    }

    /**
     * get
     *
     * @return CpuNum
     */
    public double getCpuNum() {
        return cpuNum;
    }

    /**
     * set
     *
     * @param cpuNum cpuNum
     */
    public void setCpuNum(double cpuNum) {
        this.cpuNum = cpuNum;
    }

    /**
     * get
     *
     * @return CpuNumByN
     */
    public long getCpuNumByN() {
        return cpuNumByN;
    }

    /**
     * set
     *
     * @param cpuNumByN cpuNumByN
     */
    public void setCpuNumByN(long cpuNumByN) {
        this.cpuNumByN = cpuNumByN;
    }

    /**
     * get
     *
     * @return CpuUseNum
     */
    public double getCpuUseNum() {
        return cpuUseNum;
    }

    /**
     * set
     *
     * @param cpuUseNum cpuUseNum
     */
    public void setCpuUseNum(double cpuUseNum) {
        this.cpuUseNum = cpuUseNum;
    }

    /**
     * get
     *
     * @return CpuUseNumByN
     */
    public long getCpuUseNumByN() {
        return cpuUseNumByN;
    }

    /**
     * set
     *
     * @param cpuUseNumByN cpuUseNumByN
     */
    public void setCpuUseNumByN(long cpuUseNumByN) {
        this.cpuUseNumByN = cpuUseNumByN;
    }

    /**
     * get
     *
     * @return MemQuato
     */
    public int getMemQuato() {
        return memQuato;
    }

    /**
     * set
     *
     * @param memQuato memQuato
     */
    public void setMemQuato(int memQuato) {
        this.memQuato = memQuato;
    }

    /**
     * get
     *
     * @return MemUse
     */
    public int getMemUse() {
        return memUse;
    }

    /**
     * set
     *
     * @param memUse memUse
     */
    public void setMemUse(int memUse) {
        this.memUse = memUse;
    }

    /**
     * get
     *
     * @return DiskThroughput
     */
    public int getDiskThroughput() {
        return diskThroughput;
    }

    /**
     * set
     *
     * @param diskThroughput diskThroughput
     */
    public void setDiskThroughput(int diskThroughput) {
        this.diskThroughput = diskThroughput;
    }

    /**
     * get
     *
     * @return DiskCurrentThroughput
     */
    public int getDiskCurrentThroughput() {
        return diskCurrentThroughput;
    }

    /**
     * set
     *
     * @param diskCurrentThroughput diskCurrentThroughput
     */
    public void setDiskCurrentThroughput(int diskCurrentThroughput) {
        this.diskCurrentThroughput = diskCurrentThroughput;
    }

    /**
     * get
     *
     * @return DiskIpos
     */
    public int getDiskIpos() {
        return diskIpos;
    }

    /**
     * set
     *
     * @param diskIpos diskIpos
     */
    public void setDiskIpos(int diskIpos) {
        this.diskIpos = diskIpos;
    }

    /**
     * get
     *
     * @return DiskCurrentIpos
     */
    public int getDiskCurrentIpos() {
        return diskCurrentIpos;
    }

    /**
     * set
     *
     * @param diskCurrentIpos diskCurrentIpos
     */
    public void setDiskCurrentIpos(int diskCurrentIpos) {
        this.diskCurrentIpos = diskCurrentIpos;
    }

    /**
     * get
     *
     * @return NetBandwidth
     */
    public int getNetBandwidth() {
        return netBandwidth;
    }

    /**
     * set
     *
     * @param netBandwidth netBandwidth
     */
    public void setNetBandwidth(int netBandwidth) {
        this.netBandwidth = netBandwidth;
    }

    /**
     * get
     *
     * @return NetCurrentBandwidth
     */
    public int getNetCurrentBandwidth() {
        return netCurrentBandwidth;
    }

    /**
     * set
     *
     * @param netCurrentBandwidth netCurrentBandwidth
     */
    public void setNetCurrentBandwidth(int netCurrentBandwidth) {
        this.netCurrentBandwidth = netCurrentBandwidth;
    }

    /**
     * get
     *
     * @return Delay
     */
    public int getDelay() {
        return delay;
    }

    /**
     * set
     *
     * @param delay delay
     */
    public void setDelay(int delay) {
        this.delay = delay;
    }

    /**
     * get
     *
     * @return LossRate
     */
    public double getLossRate() {
        return lossRate;
    }

    /**
     * set
     *
     * @param lossRate lossRate
     */
    public void setLossRate(double lossRate) {
        this.lossRate = lossRate;
    }

    /**
     * get
     *
     * @return PodAlgInfoModels
     */
    public List<PodAlgInfoModel> getPodAlgInfoModels() {
        return podAlgInfoModels;
    }

    /**
     * set
     *
     * @param podAlgInfoModels podAlgInfoModels
     */
    public void setPodAlgInfoModels(List<PodAlgInfoModel> podAlgInfoModels) {
        this.podAlgInfoModels = podAlgInfoModels;
    }

    /**
     * get
     *
     * @return InitPodAlgInfoModel
     */
    public PodAlgInfoModel getInitPodAlgInfoModel() {
        return initPodAlgInfoModel;
    }

    /**
     * set
     *
     * @param initPodAlgInfoModel initPodAlgInfoModel
     */
    public void setInitPodAlgInfoModel(PodAlgInfoModel initPodAlgInfoModel) {
        this.initPodAlgInfoModel = initPodAlgInfoModel;
    }

    /**
     * get
     *
     * @return PodNum
     */
    public int getPodNum() {
        return podNum;
    }

    /**
     * set
     *
     * @param podNum podNum
     */
    public void setPodNum(int podNum) {
        this.podNum = podNum;
    }
}
